// 静态成员:在类中通过static修饰的属性或方法,那么就是静态属性及静态方法,也称之为静态成员
// 静态成员在使用的时候是通过类名.的这种语法来调用的

;(() => {
  // 定义一个类
  class Person {
    name: string
    // 静态属性
    static name1: string = '小红花'
    // 构造函数是不能通过static来进行修饰的
    constructor(name: string) {
      this.name = name
    }
    static sayHi() {
      console.log('哈哈哈哈哈')
    }
  }
  // 实例化对象
  const person = new Person('小明')
  // 通过实例对象调用的属性(实例属性 )
  console.log(person.name)
  // 通过实例对象调用的方法(实例方法)
  // person.sayHi()
  // 通过类名.静态属性的方式来访问该成员数据
  console.log(Person.name1)
  // 通过类名.静态属性的方式来设置该成员数据
  Person.name1 = '小狗'
  // 通过类名.静态方法的方式来调用内部的静态的方法
  Person.sayHi()
  console.log(Person.name1)
})()
